package test;

import java.util.ArrayList;
import java.util.List;

public class Subsets2 {
	public List<List<Integer>> ret;
    public List<Integer> path;
    public void dfs(int[] nums,int pos){
      //当处理到最后一个位置时就收集结果并返回
      if(pos==nums.length){
        ret.add(new ArrayList(path));
        return ;
      }
      
      //选pos位置
      path.add(nums[pos]);
      dfs(nums,pos+1);
      path.remove(path.size()-1);

      //不选pos位置
      dfs(nums,pos+1);
    }
    public List<List<Integer>> subsets(int[] nums) {
        ret=new ArrayList<>();
        path=new ArrayList();
        dfs(nums,0);
        return ret;
    }
}
